Auto Scaling Groupで作成されるインスタンスのデフォルト名を設定する方法
はじめに
Auto Scaling Groupで作成されるEC2のデフォルト名を設定する方法が2つあります。
- 起動テンプレートのリソースタグで設定
- Auto Scaling Groupのタグで設定
この2つを同時に設定した場合、どちらの設定が優先されるのか気になったので確認してみました。
先に結果から
Auto Scaling Groupのタグで設定した値が優先されました。
やってみた
起動テンプレートのリソースタグを設定する
まずは起動テンプレートのリソースタグを以下のように設定します。
項目 | 設定値 |
---|---|
キー | Name |
値 | launch-template |
リソースタイプ | インスタンス |
画面右側の説明にも書かれていますが、リソースタイプをインスタンスに設定することで、起動テンプレートで作成されたインスタンにタグを反映させることができます。
ではこの起動テンプレートをAuto Scaling Groupに設定してインスタンスを作成します。 ちなみに、この時Auto Scaling Groupのタグは設定していません。
想定通りインスタンスの名前はlaunch-templateで作成されてますね。
Auto Scaling Groupのタグを設定する
次は起動テンプレートのリソースタグに加えてAuto Scaling Groupのタグも設定してみましょう。 以下の内容でタグを設定します。
項目 | 設定値 |
---|---|
キー | Name |
値 | demo-00 |
では、これでインスタンスを作成します。
この時Auto Scaling Groupに紐づく起動テンプレートのリソースタグは設定しています。
この場合、どちらが優先されるのでしょうか。
今度はdemo-00という名前でインスタンスが起動しました。 つまりAuto Scaling Groupで設定したタグの値が優先されたことが分かりました。
念の為、先にAuto Scaling Groupのタグを設定した状態で後から起動テンプレートのリソースタグを設定するパターンも試してみましたが、やはりAuto Scaling Groupのタグが優先されていました。
なので順番によって結果が変わるということもなさそうです。
使い分け
複数のAuto Scaling Groupで1つの起動テンプレートを参照するようなケースでは起動テンプレートでリソースタグを設定することで、管理の手間が減ります。
逆にAuto Scaling Group毎に起動するインスタンスのタグを設定したい場合は、Auto Scaling Groupのタグを設定することで柔軟なタグ設定ができます。
まとめ
起動テンプレートで設定したはずのリソースタグの値が反映されていなくて焦ることがありました。 どこで上書きされてるのかな?と思い調べてみたところAuto Scaling Groupのタグでした。という内容でした。